An enterprise application is a set of workloads (e.g., computing, networking, and storage) that are generally distributed across various nodes (or endpoints) of a network and the relationships (e.g., connectivity, dependencies, network and security policies, etc.) between the workloads. A typical application may include a presentation tier, an application tier, and a data tier. The presentation tier may depend on the application tier and authentication services, and the application tier may depend on the web tier and external network services (e.g., a travel reservation system, an ordering tool, a billing tool, etc.). These tiers may further depend on firewall, load balancing, wide area network (WAN) acceleration, and other network services. An enterprise can include hundreds or thousands of applications of similar and different architectures.
An expansive or thorough understanding of a data center and applications running in the data center can be critical for network management tasks such as anomaly detection (e.g., network attacks and misconfiguration), asset management (e.g., monitoring, capacity planning, consolidation, migration, and continuity planning), and compliance (e.g. conformance with governmental regulations, industry standards, and corporate policies). Despite the complexities of the interrelationships among workloads discussed above, the traditional approaches for developing insight into an enterprise's workloads require comprehensive knowledge on the part of human operators and processes that are manual and largely customized for a particular enterprise. To the extent automated solutions exist, conventional techniques for application dependency mapping (ADM) suffer from various drawbacks.
Conventional automated ADM techniques often assume stationary locations for workloads, which is an invalid assumption for many networks. For example, many enterprises implement virtualization platforms that support migration of VMs and containers, such as for optimizing distribution of workloads or for failover handling. Further, hybrid cloud computing, in which an enterprise application offloads some or all of its workload to a public cloud, for instance, has become an increasingly popular solution for data centers reaching the limits of their capacity. Conventional ADM processes also ordinarily rely on static and structured feature vectors or signatures (i.e., bases of comparison) for discovering applications and application dependency maps. In addition, conventional ADM systems are often incapable of or fail to gather all relevant information for identifying workloads and their interdependencies.